package br.com.principal;

import br.com.objetos.Sentido;

public class FachadaPacMan {

	private Engine engine ;//= new Engine();
	private Boolean fimDeJogo = false;

	public FachadaPacMan(){
		this.engine = new Engine();
	}

	public String movimento(String destino){
		String retorno ="";
		if(!fimDeJogo){
			if(destino.equalsIgnoreCase("C")){
				//engine.movePacMan(Sentido.C);
				this.engine.moveFantasmas();
				if(this.engine.fimDeJogo()){
					this.fimDeJogo = true;
					retorno += this.engine.limpa();
					retorno +=("Game over");
					retorno +=("Score :"+this.engine.getPacMan().getScore());
					return retorno ;
				}
				retorno += this.engine.limpa();
				return retorno;//+= this.engine.mostra();

			}else if (destino.equalsIgnoreCase("W")){
				this.engine.movePacMan(Sentido.W);
				this.engine.moveFantasmas();
				if(this.engine.fimDeJogo()){
					this.fimDeJogo = true;
					retorno += this.engine.limpa();
					retorno +=("Game over");
					retorno +=("Score :"+this.engine.getPacMan().getScore());
					return retorno ;
				}
				retorno += this.engine.limpa();
				return retorno;//+= this.engine.mostra();
			}else if (destino.equalsIgnoreCase("S")){
				this.engine.movePacMan(Sentido.S);
				this.engine.moveFantasmas();
				if(this.engine.fimDeJogo()){
					this.fimDeJogo = true;
					retorno += this.engine.limpa();
					retorno +=("Game over");
					retorno +=("Score :"+this.engine.getPacMan().getScore());
					return retorno;

				}
				retorno += this.engine.limpa();
				return retorno;//+= this.engine.mostra();
			}else if (destino.equalsIgnoreCase("A")){
				this.engine.movePacMan(Sentido.A);
				this.engine.moveFantasmas();
				if(this.engine.fimDeJogo()){
					this.fimDeJogo = true;
					retorno += this.engine.limpa();
					retorno +=("Game over");
					retorno +=("Score :"+this.engine.getPacMan().getScore());
					return retorno;
				}
				retorno += this.engine.limpa();
				return retorno;//+= this.engine.mostra();
			}else if (destino.equalsIgnoreCase("D")){
				this.engine.movePacMan(Sentido.D);
				this.engine.moveFantasmas();
				if(this.engine.fimDeJogo()){
					this.fimDeJogo = true;
					retorno += this.engine.limpa();
					retorno +=("Game over");
					retorno +=("Score :"+this.engine.getPacMan().getScore());
					return retorno;
				}
				retorno += this.engine.limpa();
				return retorno;//+= engine.mostra();
			}else if (destino.equalsIgnoreCase("P")){
				retorno += this.engine.limpa();
				retorno +=(this.engine.getPacMan().toString());
				this.fimDeJogo = true;
				return retorno;
			}else{
				retorno += this.engine.limpa();
				return retorno;//+= this.engine.mostra();
			}
		}else{
			retorno += this.engine.limpa();
			retorno += this.engine.mostra();
			retorno +=("Game over");
			retorno +=("Score :"+this.engine.getPacMan().getScore());
			return retorno;
		}
	}

	public String MostarMatriz(){
		String retorno ="";
		retorno += this.engine.mostra();
		return retorno;
	}

	public String limpaTela(){
		String retorno ="";
		retorno += this.engine.limpa();
		return retorno;
	}

}
